#include <stdio.h>


int main() {

  #if 0  
    //需求：要求算出一个字节中，bit位为1的个数
    int data = 0xff;  //0000 1001
    int cnt = 0;

    for(int i=0; i<8; i++)
    {
        if((data & (1<<i)) > 0)
        cnt++;
    }

    printf("cnt = %d\n", cnt);
    
  #endif
    //用空间换取时间
    //表 --数组  这个表存的是bit位为1的个数
    int table[] = {0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4};

    //求 数据8的bit位为1的个数
    int data = 8;
    printf("%d\n", table[data]);

}